System.register([], function (_export) {
"use strict";
var PathObserver;
function _classCallCheck(instance, Constructor) { Iif (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
return {
setters: [],
execute: function () {
PathObserver = (function () {
function PathObserver(leftObserver, getRightObserver, value) {
var _this = this;
_classCallCheck(this, PathObserver);
this.leftObserver = leftObserver;
this.disposeLeft = leftObserver.subscribe(function (newValue) {
var newRightValue = _this.updateRight(getRightObserver(newValue));
_this.notify(newRightValue);
});
this.updateRight(getRightObserver(value));
}
PathObserver.prototype.updateRight = function updateRight(observer) {
var _this2 = this;
this.rightObserver = observer;
if (this.disposeRight) {
this.disposeRight();
}
Iif (!observer) {
return null;
}
this.disposeRight = observer.subscribe(function (newValue) {
return _this2.notify(newValue);
});
return observer.getValue();
};
PathObserver.prototype.subscribe = function subscribe(callback) {
var that = this;
that.callback = callback;
return function () {
that.callback = null;
};
};
PathObserver.prototype.notify = function notify(newValue) {
var callback = this.callback;
Eif (callback) {
callback(newValue);
}
};
PathObserver.prototype.dispose = function dispose() {
if (this.disposeLeft) {
this.disposeLeft();
}
if (this.disposeRight) {
this.disposeRight();
}
};
return PathObserver;
})();
_export("PathObserver", PathObserver);
}
};
});
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9FaXNlbmJlcmdFZmZlY3QvRG9jdW1lbnRzL0dpdEh1Yi9UaGUgRHVyYW5kYWwgUHJvamVjdC9hdXJlbGlhL2JpbmRpbmcvc3JjL3BhdGgtb2JzZXJ2ZXIuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O01BQWEsWUFBWTs7Ozs7OztBQUFaLGtCQUFZO0FBQ1osaUJBREEsWUFBWSxDQUNYLFlBQVksRUFBRSxnQkFBZ0IsRUFBRSxLQUFLLEVBQUM7OztnQ0FEdkMsWUFBWTs7QUFFckIsY0FBSSxDQUFDLFlBQVksR0FBRyxZQUFZLENBQUM7O0FBRWpDLGNBQUksQ0FBQyxXQUFXLEdBQUcsWUFBWSxDQUFDLFNBQVMsQ0FBQyxVQUFDLFFBQVEsRUFBSztBQUN0RCxnQkFBSSxhQUFhLEdBQUcsTUFBSyxXQUFXLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztBQUNqRSxrQkFBSyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUM7V0FDNUIsQ0FBQyxDQUFDOztBQUVILGNBQUksQ0FBQyxXQUFXLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztTQUMzQzs7QUFWVSxvQkFBWSxXQVl2QixXQUFXLEdBQUEscUJBQUMsUUFBUSxFQUFDOzs7QUFDbkIsY0FBSSxDQUFDLGFBQWEsR0FBRyxRQUFRLENBQUM7O0FBRTlCLGNBQUcsSUFBSSxDQUFDLFlBQVksRUFBQztBQUNuQixnQkFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1dBQ3JCOztBQUVELGNBQUcsQ0FBQyxRQUFRLEVBQUM7QUFDWCxtQkFBTyxJQUFJLENBQUM7V0FDYjs7QUFFRCxjQUFJLENBQUMsWUFBWSxHQUFHLFFBQVEsQ0FBQyxTQUFTLENBQUMsVUFBQSxRQUFRO21CQUFJLE9BQUssTUFBTSxDQUFDLFFBQVEsQ0FBQztXQUFBLENBQUMsQ0FBQztBQUMxRSxpQkFBTyxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUM7U0FDNUI7O0FBekJVLG9CQUFZLFdBMkJ2QixTQUFTLEdBQUEsbUJBQUMsUUFBUSxFQUFDO0FBQ2pCLGNBQUksSUFBSSxHQUFHLElBQUksQ0FBQztBQUNoQixjQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztBQUN6QixpQkFBTyxZQUFVO0FBQ2YsZ0JBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO1dBQ3RCLENBQUM7U0FDSDs7QUFqQ1Usb0JBQVksV0FtQ3ZCLE1BQU0sR0FBQSxnQkFBQyxRQUFRLEVBQUM7QUFDZCxjQUFJLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDOztBQUU3QixjQUFHLFFBQVEsRUFBQztBQUNWLG9CQUFRLENBQUMsUUFBUSxDQUFDLENBQUM7V0FDcEI7U0FDRjs7QUF6Q1Usb0JBQVksV0EyQ3ZCLE9BQU8sR0FBQSxtQkFBRTtBQUNQLGNBQUcsSUFBSSxDQUFDLFdBQVcsRUFBQztBQUNsQixnQkFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1dBQ3BCOztBQUVELGNBQUcsSUFBSSxDQUFDLFlBQVksRUFBQztBQUNuQixnQkFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1dBQ3JCO1NBQ0Y7O2VBbkRVLFlBQVk7Ozs4QkFBWixZQUFZIiwiZmlsZSI6Ii9Vc2Vycy9FaXNlbmJlcmdFZmZlY3QvRG9jdW1lbnRzL0dpdEh1Yi9UaGUgRHVyYW5kYWwgUHJvamVjdC9hdXJlbGlhL2JpbmRpbmcvc3JjL3BhdGgtb2JzZXJ2ZXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY2xhc3MgUGF0aE9ic2VydmVyIHtcbiAgY29uc3RydWN0b3IobGVmdE9ic2VydmVyLCBnZXRSaWdodE9ic2VydmVyLCB2YWx1ZSl7XG4gICAgdGhpcy5sZWZ0T2JzZXJ2ZXIgPSBsZWZ0T2JzZXJ2ZXI7XG4gICAgXG4gICAgdGhpcy5kaXNwb3NlTGVmdCA9IGxlZnRPYnNlcnZlci5zdWJzY3JpYmUoKG5ld1ZhbHVlKSA9PiB7XG4gICAgICB2YXIgbmV3UmlnaHRWYWx1ZSA9IHRoaXMudXBkYXRlUmlnaHQoZ2V0UmlnaHRPYnNlcnZlcihuZXdWYWx1ZSkpO1xuICAgICAgdGhpcy5ub3RpZnkobmV3UmlnaHRWYWx1ZSk7XG4gICAgfSk7XG5cbiAgICB0aGlzLnVwZGF0ZVJpZ2h0KGdldFJpZ2h0T2JzZXJ2ZXIodmFsdWUpKTtcbiAgfVxuXG4gIHVwZGF0ZVJpZ2h0KG9ic2VydmVyKXtcbiAgICB0aGlzLnJpZ2h0T2JzZXJ2ZXIgPSBvYnNlcnZlcjtcblxuICAgIGlmKHRoaXMuZGlzcG9zZVJpZ2h0KXtcbiAgICAgIHRoaXMuZGlzcG9zZVJpZ2h0KCk7XG4gICAgfVxuXG4gICAgaWYoIW9ic2VydmVyKXtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIHRoaXMuZGlzcG9zZVJpZ2h0ID0gb2JzZXJ2ZXIuc3Vic2NyaWJlKG5ld1ZhbHVlID0+IHRoaXMubm90aWZ5KG5ld1ZhbHVlKSk7XG4gICAgcmV0dXJuIG9ic2VydmVyLmdldFZhbHVlKCk7XG4gIH1cblxuICBzdWJzY3JpYmUoY2FsbGJhY2spe1xuICAgIHZhciB0aGF0ID0gdGhpcztcbiAgICB0aGF0LmNhbGxiYWNrID0gY2FsbGJhY2s7XG4gICAgcmV0dXJuIGZ1bmN0aW9uKCl7XG4gICAgICB0aGF0LmNhbGxiYWNrID0gbnVsbDtcbiAgICB9O1xuICB9XG5cbiAgbm90aWZ5KG5ld1ZhbHVlKXtcbiAgICB2YXIgY2FsbGJhY2sgPSB0aGlzLmNhbGxiYWNrO1xuXG4gICAgaWYoY2FsbGJhY2spe1xuICAgICAgY2FsbGJhY2sobmV3VmFsdWUpO1xuICAgIH1cbiAgfVxuXG4gIGRpc3Bvc2UoKXtcbiAgICBpZih0aGlzLmRpc3Bvc2VMZWZ0KXtcbiAgICAgIHRoaXMuZGlzcG9zZUxlZnQoKTtcbiAgICB9XG5cbiAgICBpZih0aGlzLmRpc3Bvc2VSaWdodCl7XG4gICAgICB0aGlzLmRpc3Bvc2VSaWdodCgpO1xuICAgIH1cbiAgfVxufVxuIl19 |